1. Field of the Invention
The present invention relates to a signal processing system, a method of signal processing and a computer program product arranged to implement the method. Embodiments of the invention relate to processing compressed video bit streams. Preferred embodiments relate to processing video bit streams compressed according to the MPEG 2 standard.
2. Description of the Prior Art
The invention and its background will be discussed by way of example with reference to MPEG-2 video bitstreams. However the invention is not limited to MPEG-2.
MPEG-2 is well known from for example ISO/IEC/13818-2, and will not be described in detail herein. MPEG-2 compressed video comprises groups of I, P and/or B frames known as GOPs, Groups of Pictures. I, P and B frames are well known. An I or Intra-encoded frame contains all the information of the frame independently of any other frame. A P frame in a GOP ultimately depends on an I frame and may depend on other P frames. A B frame of a GOP ultimately depends on an I-frame and may depend on P frames in the GOP. A B frame must not depend on another B frame.
A GOP typically comprises 12 or 15 frames comprising at least one I frame and several P and B frames. To correctly decode a GOP requires all the frames of the GOP, because a large part of the video information required to decode a B frame in the GOP is in a preceding and/or succeeding frame of the GOP. Likewise a large part of the video information required to decode a P frame is in a preceding frame of the GOP. More generally, a GOP must comprise at least one I frame. It may additionally comprise one or more P frames and/or B frames. For example, a GOP may comprise only an I frame and a B frame as in the SX system of SONY.
It is known to edit compressed video or otherwise process it. A known editing process is splicing. Splicing analogue signals is relatively straight forward and can be done at the boundary between adjacent frames, because each analogue frame contains the whole of the video information of that frame independently of other frames. Splicing can be done similarly in the digital domain for both compressed and uncompressed video data if all frames contain the whole video information of the frame. Thus it has been proposed to splice compressed video by reencoding an original GOP of I and P and/or B frames as all I frames and performing splicing on the I frames and then reencoding the I frames as a new GOP having the same structure as the original GOP. Other processing is also conveniently performed on I frames. Reencoding the original GOP as I frames involves decoding the GOP to baseband and recoding to I frames. Alternatively, it has been proposed to decode a GOP of compressed video to digital baseband (i.e. uncompressed digital video), process the baseband video, and reencode the processed video as a compressed bitstream without the intermediate step of recoding to I frames.
Decoding and reencoding tends to reduce image quality. It is known to maintain image quality by storing the compression parameters of compressed video before it is decompressed and to reuse those stored parameters, for at least frames which have not been changed by the processing, when reencoding the video. For example, I frames of the original compressed video are reencoded as I frames with the same compression parameters as in the original video. Likewise P and B frames of the original video may be reencoded as P and B frames with their original compression parameters. An example of such processing is disclosed in European Patent Application 00306696.6 (Atty. ref. I-99-21 S00P5205EP00, P7374EP).
It is possible that a compressed video bitstream is decoded to I frames or baseband and then reencoded as a compressed bitstream with simple processing which does not change the video such as simple transfer and/or storage.
It has been found that decoding a compressed bitstream to I frames and reencoding the bitstream, whether or not the decoded bitstream is processed so as to change the video, results in the number of bits per GOP of the reencoded bitstream differing from that of the original bitstream even if compression parameters are reused. The same occurs if the compressed bitstream is decoded to baseband and reencoded. This can cause the buffer of a downstream decoder to underflow or overflow.
It is desired to decode and reencode a compressed video bitstream whilst maintaining image quality and avoiding buffer underflow and overflow.